package demo3;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:张熳
 * Date:2025-08-24
 * Time:0:52
 */
//继承
//子类构造方法 + 初始化（实例代码块、静态代码块和构造方法）

public class Cat extends Animal{
    //静态代码块
    static {
        System.out.println("子类static-Cat{}");
    }
    //实例代码块
    {
        System.out.println("子类实例-Cat{}");
    }

    /*public Cat(){
        //super();//注意子类构造方法中默认会调用父类的无参构造方法：super(),用户没有写时,编译器会自动添加，
                  //而且super()必须是子类构造方法中第一条语句，并且只能出现一次
        System.out.println("子类Cat()无参数构造方法");
    }*/
    public Cat(String name,int age){
        super(name,age);//父类构造方法有参数，子类构造方法必须显示定义构造方法，
                        //即先显示用super()调用父类构造方法，再调用子类自己的
        System.out.println("子类Cat(String,int)带有参数的构造方法");
    }
    //如果在一个子类的不带参数的构造方法中显示定义构造方法，则会在这个无参数的子类构造方法中，
    //调用父类有参数的构造方法，然后再接着调用子类无参数自己定义的构造方法
    public Cat(){
        super("小喵",1);
        System.out.println("子类Cat()无参数构造方法，为super()初始化");
    }

    public void miao(){
        System.out.println(this.name + " 正在喵喵叫...");
    }
}
